Comment: Win64 Application Setup Project
 
Set Variable MYAH_DISABLE_VISTA_RESTART_MANAGER to FALSE
Set Variable MYAH_DISABLE_ROLLBACK to FALSE
Set Variable NATIVE_ROLLBACK to TRUE
Set Variable NATIVE_OVERWRITE_OLDER to FALSE
Set Variable NATIVE_OVERWRITE to PROMPT
Set Variable NATIVE_ERROR to PROMPT
Set Variable DELAYUNTIL_APPLYCHANGES to FALSE
Set Variable SILENT to FALSE
Set Variable SAVEDATA to FALSE
Set Variable MYAHLOGO to true
Set Variable MYAH_TIMEOUT to 0
Set Variable MYAH_COMPRESS_INSTALLER_CACHE to TRUE
Set Variable LOADOLDDATA to FALSE
Set Variable _FrameworSetupOutput to 
Set Variable ABORTONERROR to TRUE
[DEFINE REGION: Application Updates]
Include Script: updates
[END REGION]
Set Variable _appsOpen to 0
if Variable TESTDATA Equals 
  Set Variable DefaultBrowsePath to $programdata$
  Set Persistent Variable TESTDATA to $DefaultBrowsePath$
end
 
[DEFINE REGION: Check Application Requirements]
Get System Setting Windows XP into CHECKSYSTEM
if Variable CHECKSYSTEM not Equals TRUE
  MessageBox: $TITLE$ Setup Error, This product requires at least Windows XP.$NEWLINE$$NEWLINE$Setup cannot continue.
  Terminate Installation
end
Get System Setting Windows in 64 bit Mode into CHECKSYSTEM
if Variable CHECKSYSTEM not Equals TRUE
  MessageBox: $TITLE$ Setup Error, This product requires at least a 64 bit operating system.$NEWLINE$$NEWLINE$Setup cannot continue.
  Terminate Installation
end
Set x64 - Native 64 bit Windows, AMD64 and EM64T Architectures - installation mode
[END REGION]
 
[DEFINE REGION: Check/Install Application Pre-Requisites]
 
[DEFINE REGION: Check Application Pre-Requisites]
Comment: Check setup pre-requisites
Set Variable PREREQ to FALSE
Set Variable PRELIST to 
[compiler if Variable BUILDMODE not Equals PATCH]
if Variable NEEDSUPGRADE Equals TRUE
  Set Variable PREREQ to TRUE
  Set Variable PRELIST to $PRELIST$$NEWLINE$Previous Version Uninstallation
end
Include Script: checkmsi31
Include Script: checknet4aip_client_x86
Include Script: checknet4aip_x86
[compiler end]
[END REGION]
 
[DEFINE REGION: Install Application Pre-Requisites]
Comment: Install setup pre-requisites
if Variable PREREQ not Equals FALSE
  Display Dialog: prereq, wait for dialog to return (modal)
  if Variable WIZARD Equals CANCEL
    Terminate Installation
  end
  Display Dialog: progressprereq, use as progress dialog (non-modal)
  [compiler if Variable BUILDMODE not Equals PATCH]
  if Variable NEEDSUPGRADE Equals TRUE
    Set Variable REMOVEOLD to 
    Set Variable ERROROLD to 
    Run Program $SUPPORTDIR$\ExitApplication.exe OpKeyExecutionAgent (WAIT, get result into variable _appsOpen)
    if Variable _appsOpen Equals 5
      Terminate Installation
    end
    Install/Remove MSI Package $PRODUCTCODE$[REMOVE=ALL] (get result into variable REMOVEOLD)
    if Variable REMOVEOLD Equals ERROR
      MessageBox: $TITLE$ Setup, Unable to uninstall old version of $TITLE$. Please uninstall it yourself using Control Panel Add-Remove Programs before attempting to install this product.$NEWLINE$$NEWLINE$$ERROROLD$
      Terminate Installation
    end
    if Variable REMOVEOLD Equals REBOOT
      MessageBox: $TITLE$ Setup, Your computer needs to be restarted before $TITLE$ Setup can continue.$NEWLINE$$NEWLINE$Please save your work in all running programs and click OK to restart your computer. Setup will resume once your computer restarts.$NEWLINE$$NEWLINE$If you click CANCEL, setup will exit. You will have to run setup again at a later time to install $TITLE$.
      if Variable REBOOTNOW Equals OK
        Reboot Computer and Resume Setup
      else
        Terminate Installation
      end
    end
    Set Variable MAINTENANCE to FALSE
  end
  [OFFLINE CONTENT]
  if Variable DOTNET40_X86 Equals TRUE
    Comment: .NET Framework is installed
  else
    Comment: .NET Framework is not installed,hence need download
    Set Variable DOWNLOAD_RESULT to 
    Comment: Modify the used URL & the temporary file name as required
    Set Variable PROGRESSTEXT to Please wait while Downloading Microsoft .NET Framework. This may take time...
    Set Variable DOWNLOAD_FROM to http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe
    Set Variable TEMPORARY_FILE to $SUPPORTDIR$\Dotnetframework.exe
    Comment: Modify the DOWNLOAD FILE command PROXY settings if required
    Set Variable PROGRESSMODE to MARQUEE
    Set Variable PROGRESSTEXT to Please wait while Downloading Microsoft .NET Framework. This may take time...
    Download File $DOWNLOAD_FROM$ into $TEMPORARY_FILE$ (get result into variable DOWNLOAD_RESULT)
    if Variable DOWNLOAD_RESULT Equals SUCCESS
      Comment: If download has completed successfully execute the application
      Set Variable PROGRESSMODE to MARQUEE
      Set Variable PROGRESSTEXT to Please wait while Installing Microsoft .NET Framework. This may take time...
      Run Program $TEMPORARY_FILE$ /q /norestart (WAIT, get result into variable _FrameworSetupOutput)
      if Variable _FrameworSetupOutput Equals 3010
        Comment: means system need restart to continue set up as the .NET Framework bits are not correctly loaded
        MessageBox: $TITLE$ Setup, Your computer needs to be restarted before $TITLE$ Setup can continue.$NEWLINE$$NEWLINE$Please save your work in all running programs and click OK to restart your computer. Setup will resume once your computer restarts.$NEWLINE$$NEWLINE$If you click CANCEL, setup will exit. You will have to run setup again at a later time to install $TITLE$.
        if Variable REBOOTNOW Equals OK
          Reboot Computer and Resume Setup
        else
          Terminate Installation
        end
      end
      if Variable _FrameworSetupOutput Equals 1641
        Comment: means system need restart to continue set up as the .NET Framework bits are not correctly loaded
        MessageBox: $TITLE$ Setup, Your computer needs to be restarted before $TITLE$ Setup can continue.$NEWLINE$$NEWLINE$Please save your work in all running programs and click OK to restart your computer. Setup will resume once your computer restarts.$NEWLINE$$NEWLINE$If you click CANCEL, setup will exit. You will have to run setup again at a later time to install $TITLE$.
        if Variable REBOOTNOW Equals OK
          Reboot Computer and Resume Setup
        else
          Terminate Installation
        end
      end
      if Variable _FrameworSetupOutput not Equals 0
        Comment: means system need restart to continue set up as the .NET Framework bits are not correctly loaded
        MessageBox: $TITLE$ Setup, Microsoft .NET Framework 4.0 could not be installed. Click Ok to terminate the installation.
        if Variable REBOOTNOW Equals OK
          Terminate Installation
        end
      end
      Set Variable PROGRESSTEXT to 
      Set Variable PROGRESSMODE to 
    else
      MessageBox: OpKey, Could not download .NET Framework 4.0,Kindly check your internet connection,or you can manually download .NET Framework 4.0 from http://www.microsoft.com/en-in/download/details.aspx?id=17851,$NEWLINE$Installation will be aborted.
      Terminate Installation
    end
  end
  [OFFLINE CONTENT]
  Comment: Include Script: setupmsi31
  [OFFLINE CONTENT]
  Comment: Include Script: setupnet4aip_client_x86
  [OFFLINE CONTENT]
  Comment: Include Script: setupnet4aip_x86
  [compiler end]
  Hide Dialog
end
[END REGION]
 
[END REGION]
 
[DEFINE REGION: Define Setup Globals]
Comment: Define Setup Components
 
Comment: Initialize Setup Globals
if Variable ALLUSERS Equals TRUE
  Get System Setting Windows in 64 bit Mode into ISWIN64
  if Variable ISWIN64 Equals TRUE
    Set x64 - Native 64 bit Windows, AMD64 and EM64T Architectures - installation mode
    Comment: Stores reg value under HKLM on x64 OS
    Write Registry Key HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\$TITLE$\UninstallString, $UNINSTALLLINK$
  end
end
Get System Setting Windows NT Kernel (NT4, 2000, XP, 2003, Vista, 2008, 7, 2008 R2, 8, 2012) into ISNT
if Variable programdata Equals 
  Get Common Folder Location System->Application Data Directory into ALLAPPDATA
  Set Persistent Variable programdata to $ALLAPPDATA$
end
Get Folder Location System->Program Files Directory into PROGRAMFILES
Get Common Folder Location System->Program Files Directory into COMMONFILES
Get Common Folder Location Start Menu->Programs Group into SHORTCUTFILESALL
Get Folder Location Start Menu->Programs Group into SHORTCUTFILES
if Variable SHORTCUTFILESALL Equals 
  Set Variable SHORTCUTFILESALL to $SHORTCUTFILES$
end
Get Folder Location System->Desktop Directory into DESKTOPDIR
Get Folder Location System->Windows Directory into WINDIR
Get Folder Location System->System Directory into SYSTEM32
Set Win32 - Native 32 bit Windows and Windows 32 on Windows 64 (WOW64) - installation mode
Get Folder Location System->System Directory into SYSWOW64
Get Folder Location System->Program Files Directory into PROGRAMFILES_X86
Get Common Folder Location System->Program Files Directory into COMMONFILES_X86
Set x64 - Native 64 bit Windows, AMD64 and EM64T Architectures - installation mode
Get Folder Location Taskbar->Quick Launch Directory into QUICKLAUNCHDIR
Get Folder Location WWW->WWWRoot into WWWROOTDIR
[END REGION]
 
[DEFINE REGION: Setup User Interview]
if Variable MAINTENANCE Equals TRUE
  GoTo Label: Maintenance
else
  [compiler if Variable BUILDMODE not Equals PATCH]
  Comment: First Time Install
  Set Variable TARGETDIR to $PROGRAMFILES$\
  Set Persistent Variable TARGETDIR_X86 to $PROGRAMFILES_X86$\$TITLE$
  Set Variable STARTMENU to $TITLE$
  [compiler end]
end
 
label: Welcome Dialog
Display Dialog: welcome, wait for dialog to return (modal)
if Variable WIZARD Equals CANCEL
  GoTo Label: Main Install
end
[compiler if Variable BUILDMODE not Equals PATCH]
label: License Check
Display Dialog: licensecheck, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
  GoTo Label: Welcome Dialog
else
  if Variable WIZARD Equals CANCEL
    GoTo Label: Main Install
  end
end
label: ReadMe Information
Comment: Display Dialog: readme, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
  GoTo Label: License Check
else
  if Variable WIZARD Equals CANCEL
    GoTo Label: Main Install
  end
end
label: User Registration
Comment: Display Dialog: registration, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
  GoTo Label: ReadMe Information
else
  if Variable WIZARD Equals CANCEL
    GoTo Label: Main Install
  end
end
label: Setup Type
Comment: Display Dialog: setuptype, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
  GoTo Label: User Registration
else
  if Variable WIZARD Equals CANCEL
    GoTo Label: Main Install
  end
end
Comment: TO-DO: Customize your minimum setup here
if Variable MINIMUM Equals TRUE
else
  if Variable COMPLETE Equals TRUE
  end
end
label: Custom Setup
Comment: Display Dialog: componentstree (if variable PERSONALIZED is TRUE), wait for dialog to return (modal)
if Variable WIZARD Equals BACK
  GoTo Label: Setup Type
else
  if Variable WIZARD Equals CANCEL
    GoTo Label: Main Install
  end
end
label: Destination Directory
Display Dialog: destination, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
  GoTo Label: Custom Setup
else
  if Variable WIZARD Equals CANCEL
    GoTo Label: Main Install
  end
end
label: Start Menu
Display Dialog: startmenu, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
  GoTo Label: Destination Directory
else
  if Variable WIZARD Equals CANCEL
    GoTo Label: Main Install
  end
end
[compiler end]
label: Start Installation
Display Dialog: startinstallation, wait for dialog to return (modal)
if Variable WIZARD Equals BACK
  [compiler if Variable BUILDMODE not Equals PATCH]
  GoTo Label: Start Menu
  [compiler else]
  GoTo Label: Welcome Dialog
  [compiler end]
else
  GoTo Label: Main Install
end
 
label: Maintenance
Comment: Maintenance Install/Uninstall
Set Persistent Variable REMOVE to TRUE
Set Persistent Variable REPAIR to FALSE
wizard loop
Display Dialog: maintenance, wait for dialog to return (modal)
Comment: Display Dialog: componentstree (if variable MODIFY is TRUE), wait for dialog to return (modal)
Display Dialog: startinstallation, wait for dialog to return (modal)
end
[END REGION]
 
[DEFINE REGION: Process (Un)Installation]
label: Main Install
Comment: Exit Setup if Wizard Loop cancelled
if Variable WIZARD Equals CANCEL
  Terminate Installation
end
 
Comment: Prepare to install
Set Variable PROGRESSTEXT to Installing $TITLE$
Set Variable SUCCESS to 
Set Variable LASTERROR to 
if Variable ALLUSERS Equals TRUE
  Set Variable SHORTCUTFOLDER to $SHORTCUTFILESALL$\$STARTMENU$
else
  Set Variable SHORTCUTFOLDER to $SHORTCUTFILES$\$STARTMENU$
end
Display Dialog: progress, use as progress dialog (non-modal)
 
Comment: Modify Target System
[DEFINE REGION: Perform Uninstallation]
if Variable REMOVE Equals TRUE
  Comment: Uninstall product
  Comment: TO-DO: Insert any additional uninstall commands here
  Run Program $SUPPORTDIR$\ExitApplication.exe OpKeyExecutionAgent (WAIT, get result into variable _appsOpen)
  if Variable _appsOpen Equals 5
    Terminate Installation
  end
  Apply Uninstall (get result into variable SUCCESS)
  Set Variable PROGRESS to 100
else
  [END REGION]
  [DEFINE REGION: Perform First Time or Maintenance Installation]
  Comment: Install/Re-Install product
  Run Program $SUPPORTDIR$\ExitApplication.exe OpKeyExecutionAgent (WAIT, get result into variable _appsOpen)
  if Variable _appsOpen Equals 5
    Terminate Installation
  end
  Create Shortcut $SHORTCUTFOLDER$\Uninstall #TITLE# to $UNINSTALLLINK$
  [OFFLINE CONTENT]
  Create Shortcut $DESKTOPDIR$\OpKey Execution Agent to $TARGETDIR$\CresTech\OpKey Execution Agent\Assembly\OpKeyExecutionAgent.exe
  Create Shortcut $SHORTCUTFOLDER$\OpKey Execution Agent to $TARGETDIR$\CresTech\OpKey Execution Agent\Assembly\OpKeyExecutionAgent.exe
  [compiler if Variable BUILDMODE not Equals PATCH]
  if Variable ALLUSERS Equals TRUE
    Delete Registry VALUE HKLM\SOFTWARE\CresTech\OpKey\\OpKey_Execution_Agent
    Delete Registry VALUE HKCU\SOFTWARE\CresTech\OpKey\\OpKey_Execution_Agent
  else
    Delete Registry VALUE HKCU\SOFTWARE\CresTech\OpKey\\OpKey_Execution_Agent
  end
  [compiler end]
  [OFFLINE CONTENT]
  if Variable SELECTED Equals TRUE
  end
  Comment: TO-DO: Insert any additional install commands here
  [compiler if Variable BUILDMODE Equals PATCH]
  Apply Patch (get result into variable SUCCESS)
  [compiler else]
  if Variable ADVERTISE Equals TRUE
    Apply Advertised (get result into variable SUCCESS)
  else
    Create Folder $programdata$\CresTech
    Create Folder $programdata$\CresTech\OpKey
    Create Folder $programdata$\CresTech\OpKey\Agent
    Create Folder $TESTDATA$\AgentData
    Create Folder $TARGETDIR$\CresTech
    Create Folder $TARGETDIR$\CresTech\OpKey Execution Agent
    Create Folder $TARGETDIR$\CresTech\OpKey Execution Agent\Assembly
    Create Folder $TESTDATA$\AgentData\AgentRegistry
    Create Folder $TESTDATA$\AgentData\AgentRegistry\Agent Keywords
    Create Shortcut $SHORTCUTFOLDER$\#TITLE# Update to $UNINSTALLLINK$
    Apply Install (get result into variable SUCCESS)
  end
  [compiler end]
  Set Variable PROGRESS to 100
end
[END REGION]
[END REGION]
 
[DEFINE REGION: Finish Setup]
Comment: End of Installation
Hide Dialog
Display Dialog: finish, wait for dialog to return (modal)
if Variable SILENT Equals FALSE
  if Variable REBOOTCOMPUTER Equals TRUE
    if Variable SUCCESS Equals REBOOT
      Reboot Computer
    end
  end
  if Variable RUNAPP Equals TRUE
    if Variable REMOVE Equals FALSE
      Set Read Write Permissions on File System Object "$programdata$\CresTech\Opkey\Agent" for Everyone Current User Authenticated Users 
      Write into Text File $programdata$\CresTech\Opkey\Agent\DataPath.txt from Value $TESTDATA$\AgentData (at start of file)
      Comment: TO-DO: Insert command that starts your application here
    end
  end
end
[END REGION]
 
